{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Transcription and diarization of audio files with Whisper and pyannote\n",
    "Francesco Garassino\n",
    "\n",
    "Interviews are an important research tool in many scientific disciplines. Getting a good-quality recording of an interview has become very easy, so you might be thinking to use interviews in your research. However, you might wonder how you can transcribe your interview without using hours of your precious time.\n",
    "\n",
    "This follow-along tutorial will show you everything you'll need to do to start automatically transcribing interviews by leveraging the mighty powers of machine learning. I will attempt to make each analysis step clear, but I will not delve into too many technical details of the various steps of audio analysis.\n",
    "\n",
    "This notebook's code is adapted from that provided by`riteshere`on [GitHub](https://github.com/riteshhere/Speaker_diarization/blob/5d39ef36dd7c4c20099be278c7c5cf86a043174b/research_files/speech_Diarization.ipynb) and explained on [Medium](https://medium.com/@xriteshsharmax/speaker-diarization-using-whisper-asr-and-pyannote-f0141c85d59a)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Requirements\n",
    "\n",
    "- One or more recordings\n",
    "    - You can find tips on how to set up and record your interview [here](https://aultman.libguides.com/c.php?g=974169&p=7042440#s-lg-box-22354145) <br/><br/>\n",
    "- The `pip` Python package manager\n",
    "    - Information on installing pip can be found [here](https://pip.pypa.io/en/stable/installation/)  <br/> <br/>   \n",
    "- The `Whisper` and `pyannote` packages\n",
    "    - You can install Whisper by running `pip install -q git+https://github.com/openai/whisper.git`\n",
    "    - You can install pyannote by running `pip install -q git+https://github.com/pyannote/pyannote-audio`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Let's get started\n",
    "\n",
    "First, we need to load some python packages. If something is missing from your environment, you can install it with `pip`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 177,
     "referenced_widgets": [
      "d460eb9027954e5c996ea1ec400fb730",
      "271e63e09e7743b8a6f382b4e5acbc40",
      "6f009abe9edb4a5cad925abe3de24f65",
      "7816754f55c342379cdf53cfbee99710",
      "e441229140564f45a08748091ffdaf9c",
      "28d3aa62320a4bf286884a4d1712fc54",
      "a43cfe2da37340dfa0b55f62592a91d8",
      "501e91feab7c41bdb692135ef5932cb2",
      "3bf5388c1c7e41ecb03ace96053d721f",
      "db81d099ad0a46c5856c34a9a6842799",
      "f1951ee8562349d6b805f286986ce4a4",
      "99f5b2c08a3e471e9a5107a52d0ad135",
      "3b6b5c831b9843e792bbd3bb7d8438f5",
      "9e0879e633874ba88427fb87abf40462",
      "28b351c089554f40942eb567211860bf",
      "d200b1ea862e4b829c2f7b4138f8aabf",
      "d1280f0c62ae43d28e2b6ec1b4d78cc8",
      "a4f89c0b8a494a22ab8e47b6437e86d9",
      "3ff67e8de1fe4173b134a6521eaa8368",
      "706aacf733264412bc3cc0042da84655",
      "4e533fa893714c8c80e7edf16c3cc618",
      "aa0199cb9c39449a9d9038a628392c2a",
      "7b0bd89806834970bb751ceefa296644",
      "a8653affd36e4c82b793199ec84e3979",
      "af9eaeb7e46946378f525bc369a9f0bd",
      "57271afa0ae943079701da2e26cbc7d2",
      "d7ff1eff2ba84b529855cce7c836c398",
      "aaf8d84b6b1049529f00a9b98781e086",
      "b7660a1e09e04d8ca25d067cea253e9a",
      "2ce5976de1aa4d189e09c78348a0f25f",
      "80ce97975add47d8975b57c7b97447d8",
      "8c1e470a1132492d8355f93acc47e7b9",
      "7e3878a6c7cc4a7a88511ec477d29beb",
      "ef66c458a56b4670809a232ae4448326",
      "2d2ab546b57141769d3b13f30a10287b",
      "9fe4c35151b54620a522d56169f95f83",
      "e734b6a7602f412bb125820cd00e0a91",
      "fe3de03b316243fcafb66a3c07d9ad4c",
      "3562842fec344497b966caba05af1e8b",
      "6016ae447c92412d949550891304b020",
      "105166bd7fe54e4e9abacfeebcb17be7",
      "eb737052336e451cbc10db8b1d43f495",
      "5bb997ac5cc0477fbfc7bccb1f42cda0",
      "253e22fc6dd1453bb11ba5138f36b7e1",
      "bf0c30b759424ce3a572829e8d0cd5a0",
      "f9087c013be74d53a52a2f2bcddd5fcb",
      "61b2a3094f5e4ce8a48e1e8097400cfb",
      "fc0e5b1c431c4499a6f448956d36c1ff",
      "cc1a0d84484842aca2040bae71f899e0",
      "cdc6881584b2410396144462ad1ec107",
      "06ea8198faba45949ff0aff7484acc2f",
      "f15b28c87f884f94a3f8647a46fe7da9",
      "44ba734e9dbc4d98a54fdc41f515eea6",
      "7f954247cd2a49f2af2cb056db826533",
      "612096154d564f898ae73624aa52dc1b"
     ]
    },
    "id": "1u-RTRbvMllh",
    "outputId": "43467d93-3fe5-4e9d-aab7-cd1d77a7b462"
   },
   "outputs": [],
   "source": [
    "# imports\n",
    "\n",
    "import whisper\n",
    "import datetime\n",
    "\n",
    "import subprocess\n",
    "\n",
    "import torch\n",
    "import pyannote.audio\n",
    "from pyannote.audio.pipelines.speaker_verification import PretrainedSpeakerEmbedding\n",
    "\n",
    "from pyannote.audio import Audio\n",
    "from pyannote.core import Segment\n",
    "\n",
    "import wave\n",
    "import contextlib\n",
    "\n",
    "from sklearn.cluster import AgglomerativeClustering\n",
    "from sklearn.decomposition import PCA\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.cm as cm\n",
    "import time\n",
    "import random\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we need to select an audio file (in any format)\n",
    "\n",
    "For this example, we'll use a sample audio file retrieved from [Kaggle](https://www.kaggle.com/datasets/pavanelisetty/sample-audio-files-for-speech-recognition?resource=download)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 73
    },
    "id": "nLQH4hYwLeUl",
    "outputId": "b75e0e01-6d7e-41d6-acc2-dfa69405e577",
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# path to audio file\n",
    "path = \"./inputs/1-harvard.wav\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We then specify some parameters we'll need to run `Whisper`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "La_gCYtqMlo5"
   },
   "outputs": [],
   "source": [
    "num_speakers = 3 # @param {type:\"integer\"}\n",
    "\n",
    "language = 'English' #@param ['any', 'English']\n",
    "\n",
    "model_size = 'large-v2' #@param ['tiny', 'base', 'small', 'medium', 'large']\n",
    "\n",
    "\n",
    "model_name = model_size\n",
    "if language == 'English' and model_size != 'large-v2':\n",
    "  model_name += '.en'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Whisper only transcribes from `.waw` audio files. We can use `ffmpeg` to convert our audio file to .waw, if needed:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "KarMq8kwMljK"
   },
   "outputs": [],
   "source": [
    "if path.split('.')[-1] != 'wav':\n",
    "    # option -i is for specifying the filename, -y for overwriting of output files\n",
    "    subprocess.call(['ffmpeg', '-i', path, f'{''.join(path.split('.')[:-1])}.wav', '-y'])\n",
    "    \n",
    "    # this, also used in the call above, will create a path with the same name as original but with .waw extension\n",
    "    path = f'{''.join(path.split('.')[:-1])}.wav' "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Transcription\n",
    "\n",
    "We can now import the whisper model we specified above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "_DO35mQqMlge",
    "outputId": "a300351a-85f6-4ec3-ec49-ab653a4c1bb8"
   },
   "outputs": [],
   "source": [
    "model = whisper.load_model(model_size, device=\"cpu\")\n",
    "# Note that with 'device', we could have whisper run on a GPU as well - though this does not appear to come with\n",
    "# improved performance. See https://github.com/ggerganov/whisper.cpp/issues/1540"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Time to run whisper on our file!\n",
    "\n",
    "model.transcribe returns a dictionary with three key-value pairs: \n",
    "\n",
    "1. the transcribed text as a single string\n",
    "2. the transcription \"segments\", i.e. the sentences identified by whisper, complete with timestamps\n",
    "3. the detected language (when using the 'large' family models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "vMEDfpZ9Mld2",
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "start_time = time.time()\n",
    "\n",
    "result = model.transcribe(path)\n",
    "segments = result[\"segments\"]\n",
    "\n",
    "end_time = time.time()\n",
    "\n",
    "#print(f\"Elapsed time: {end_time - start_time} seconds\")\n",
    "print(f\"Elapsed time: {round((end_time - start_time)/60)} minutes\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's take a look at the first 200 characters of the transcript:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(result['text'][0:200])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And let's take a look at one segment:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(result['segments'][1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now need to extract and calculate essential information from our .waw file:\n",
    "\n",
    "1. The total number of frames, i.e. the number of single units of audio data that make up our audio file\n",
    "2. The frame rate, also known as the sample rate, i.e. the number of frames contained in a second of the audio file\n",
    "3. The calculated duration of the audio file in seconds\n",
    "\n",
    "We'll leverage the `wawe` module for opening the .waw file and retrieving the information."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "CM5WWfaSMlbW"
   },
   "outputs": [],
   "source": [
    "# contextlib.closing(wave.open(path, 'r')) is used to open a WAV file for reading in such a way that it ensures the file \n",
    "# is properly closed after its use, even if an error occurs.\n",
    "\n",
    "with contextlib.closing(wave.open(path,'r')) as f:\n",
    "  frames = f.getnframes()\n",
    "  rate = f.getframerate()\n",
    "  duration = frames / float(rate)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Diarization\n",
    "\n",
    "Our first step towards diarization is to retrieve speaker *embeddings* from each of the segments (i.e., sentences) that whisper extracted from the audio file.\n",
    "\n",
    "*Speaker embeddings* are numerical representations of a person's voice. They capture the unique characteristics of a speaker's voice and will allow us to tell different speakers apart in our audio file.\n",
    "\n",
    "Here, we will use a function in a loop to retrieve embeddings for all the segments in our audio file. This function leverages functionalities from the `pyannote.audio` module. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "FVfDx1zcMlY8"
   },
   "outputs": [],
   "source": [
    "# Audio is a class imported from pyannote.audio that offers functionality for loading audio files, extracting features, \n",
    "# and manipulating audio data\n",
    "audio = Audio() \n",
    "\n",
    "# PretrainedSpeakerEmbedding utilizes a model that has been pre-trained on a large dataset of speech recordings. \n",
    "# The primary function of this class is to extract speaker embeddings from audio segments. \n",
    "embedding_model = PretrainedSpeakerEmbedding(\n",
    "    \"speechbrain/spkrec-ecapa-voxceleb\",\n",
    "    device = torch.device(\"mps\")) \n",
    "# the \"device\" specification can be used to direct pyannote.audio processes to the GPU, making it up to 10x faster. \n",
    "# Note that you may need to change this depending on your system: https://pytorch.org/docs/stable/tensor_attributes.html#torch.device\n",
    "\n",
    "def segment_embedding(segment):\n",
    "    start = segment[\"start\"]\n",
    "    \n",
    "    # Whisper overshoots the end timestamp in the last segment, so when dealing with the last segment, we will use the calculated duration\n",
    "    # of the audio file instead of the segment end\n",
    "    end = min(duration, segment[\"end\"])\n",
    "\n",
    "    # Segment is a class imported from pyannote.core. A Segment object represents a time interval with a start time and an end time.\n",
    "    clip = Segment(start, end)\n",
    "\n",
    "    # We then can use the Audio.crop() method from pyannote.audio to extract the clip we just defined, corresponding to a segment, \n",
    "    # from our audio file (specified by 'path'). Audio.crop() returns two objects when extracting a segment from an audio file:\n",
    "\n",
    "    # Waveform: a numpy array containing the audio data for the specified segment. The shape of the array is typically (num_samples, num_channels), \n",
    "    # where num_samples is the number of audio samples in the segment and num_channels is the number of audio channels (e.g., 1 for mono, 2 for stereo).\n",
    "\n",
    "    # Sample Rate: we have already introduced this, and will not need it here.\n",
    "    waveform, sample_rate = audio.crop(path, clip)\n",
    "\n",
    "    # Finally, we use the embedding_model to compute embeddings for the extracted waveform. \n",
    "    # segment_embedding() will return a numpy array characterizing the speaker of a segment.\n",
    "    return embedding_model(waveform[None])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "YO5hkz3-MlWB"
   },
   "outputs": [],
   "source": [
    "# Let's now iterate over our segments and retrieve all embeddingss\n",
    "\n",
    "embeddings = np.zeros(shape=(len(segments), 192)) # creates a bi-dimensional array of size #segments*192 and fills it with zeros\n",
    "\n",
    "for i, segment in enumerate(segments):\n",
    "  embeddings[i] = segment_embedding(segment)\n",
    "\n",
    "embeddings = np.nan_to_num(embeddings)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# Let's have a look:\n",
    "print(f' array dimensions: {embeddings.shape}\\n')\n",
    "print(pd.DataFrame(embeddings).head())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Essentially, we have created an array in which each row corresponds to one of the segments of our transcript, and contains 192 values describing the characteritics of the voice present in that segment.\n",
    "\n",
    "A quick look should have shown you that each embedding is different from the others across the 192 columns of the array. Here's a representation of the values for all segments, from six randomly selected columns:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "fig, axs = plt.subplots(2, 3, figsize=(10, 6))  # 3x2 grid of subplots\n",
    "\n",
    "# Flatten the axs array to easily iterate over each subplot\n",
    "axs = axs.flatten()\n",
    "\n",
    "r = 0\n",
    "# Plot histograms for each column\n",
    "for i in random.sample(range(0, embeddings.shape[1]), 6):\n",
    "    ax = axs[r]\n",
    "    ax.hist(embeddings[:, i], bins=100, color=\"green\")\n",
    "    ax.set_title(f'Column {i+1}')\n",
    "    ax.set_xlabel('Values')\n",
    "    ax.set_ylabel('Frequency')\n",
    "    ax.grid(True)\n",
    "    r += 1\n",
    "\n",
    "# Adjust layout\n",
    "plt.tight_layout()\n",
    "\n",
    "# Display the plot\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So, what's next? \n",
    "\n",
    "Well, now we can *cluster* all our embeddings based on their values across the 193 columns. For this, we will perform [agglomerative hierarchical clustering](https://en.wikipedia.org/wiki/Hierarchical_clustering) with a function imported from the `sklearn.cluster` module.\n",
    "\n",
    "Having specified the number of speakers, we will force the algorithm to cluster the embeddings into as many clusters as there are speakers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "T-BGf1e5MlTd"
   },
   "outputs": [],
   "source": [
    "clustering = AgglomerativeClustering(num_speakers).fit(embeddings)\n",
    "\n",
    "# the embeddings are assigned a numerical label from [0,num_speakers)\n",
    "labels = clustering.labels_\n",
    "\n",
    "# with this, we will add a \"speaker\" key-value pair to the dictionary corresponding to each segment in the 'segments' list.\n",
    "# Note the 'labels[i] + 1', making sure there is no \"SPEAKER 0\" label\n",
    "for i in range(len(segments)):\n",
    "  segments[i][\"speaker\"] = 'SPEAKER ' + str(labels[i] + 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All there is left to do is to print our labelled segments (i.e., sentences) to a transcript `.txt` file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "pfOKef5IMlQ8"
   },
   "outputs": [],
   "source": [
    "# will create an identical filename as the audio file, but with .txt suffix\n",
    "out_path = f'{''.join(path.split('/')[-1].split('.')[:-1])}_diarization.txt'\n",
    "\n",
    "# pretty formatting of timestamps\n",
    "def time_secs(secs):\n",
    "  return datetime.timedelta(seconds=round(secs))\n",
    "\n",
    "# this chunk mostly contains formatting operations whose in-detail explanation would be overkill\n",
    "f = open(out_path, 'w')\n",
    "x = \"\" # we will also store all labels and segments into a string\n",
    "for (i, segment) in enumerate(segments):\n",
    "  if i == 0 or segments[i - 1][\"speaker\"] != segment[\"speaker\"]:\n",
    "    f.write(\"\\n\" + segment[\"speaker\"] + ' ' + str(time_secs(segment[\"start\"])) + '\\n')\n",
    "  f.write(segment[\"text\"][1:] + ' ')\n",
    "  x += \"\\n\" + segment[\"speaker\"] + ' ' + str(time_secs(segment[\"start\"])) + '\\n'\n",
    "  x += segment[\"text\"][1:] + ' '\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's take a look at how the first lines of our file look like:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "3fIFi6mrM_M1",
    "outputId": "60935de7-03ca-4b41-f770-60c1ad03d262"
   },
   "outputs": [],
   "source": [
    "print('\\n'.join(x.split('\\n')[0:15]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can get a first impression of how the clustering worked by making a PCA plot of the clustered embeddings:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 718
    },
    "id": "Z5F4NCSnMlJk",
    "outputId": "f8d9fd42-03f2-409d-a8a0-6f37b5b15aeb",
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# Perform PCA to reduce the dimensionality of embeddings to 2D\n",
    "pca = PCA(n_components=2, random_state=42)\n",
    "embeddings_2d = pca.fit_transform(embeddings)\n",
    "\n",
    "# Get the number of unique speakers from the labels\n",
    "num_unique_speakers = len(np.unique(labels))\n",
    "\n",
    "# Create a colormap for speakers, ensuring each speaker gets a unique color\n",
    "colors = cm.tab20b(np.linspace(0, 1, num_unique_speakers))\n",
    "\n",
    "# Plot the clusters\n",
    "plt.figure(figsize=(10, 8))\n",
    "for i, segment in enumerate(segments):\n",
    "    speaker_id = labels[i] + 1\n",
    "    x, y = embeddings_2d[i]\n",
    "    color = colors[labels[i] % num_unique_speakers]  # Get the corresponding color for the speaker\n",
    "    plt.scatter(x, y, label=f'SPEAKER {speaker_id}', color=color)\n",
    "\n",
    "# making the legend more user-friendly\n",
    "handles, labs = plt.gca().get_legend_handles_labels()\n",
    "# zip labels as keys and handles as values into a dictionary, ...\n",
    "# so only unique labels would be stored \n",
    "dict_of_labels = dict(zip(labs, handles))\n",
    "# use unique labels (dict_of_labels.keys()) to generate your legend\n",
    "plt.legend(dict_of_labels.values(), dict_of_labels.keys())\n",
    "\n",
    "plt.title(\"Speaker Diarization Clusters (PCA Visualization)\")\n",
    "plt.xlabel(\"Principal Component 1\")\n",
    "plt.ylabel(\"Principal Component 2\")\n",
    "\n",
    "plot_path = f'{''.join(path.split('/')[-1].split('.')[:-1])}_diarization_PCA.png'\n",
    "plt.savefig(plot_path, bbox_inches='tight')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## That's all, folks\n",
    "\n",
    "And this is it! We now have transcribed and diarized an audio file. The transcript is ready for further analysis in the same location where the notebook is stored."
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "gpuType": "V100",
   "machine_shape": "hm",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "06ea8198faba45949ff0aff7484acc2f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "105166bd7fe54e4e9abacfeebcb17be7": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "253e22fc6dd1453bb11ba5138f36b7e1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "271e63e09e7743b8a6f382b4e5acbc40": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_28d3aa62320a4bf286884a4d1712fc54",
      "placeholder": "​",
      "style": "IPY_MODEL_a43cfe2da37340dfa0b55f62592a91d8",
      "value": "Downloading (…)ain/hyperparams.yaml: 100%"
     }
    },
    "28b351c089554f40942eb567211860bf": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4e533fa893714c8c80e7edf16c3cc618",
      "placeholder": "​",
      "style": "IPY_MODEL_aa0199cb9c39449a9d9038a628392c2a",
      "value": " 83.3M/83.3M [00:00&lt;00:00, 215MB/s]"
     }
    },
    "28d3aa62320a4bf286884a4d1712fc54": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2ce5976de1aa4d189e09c78348a0f25f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2d2ab546b57141769d3b13f30a10287b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3562842fec344497b966caba05af1e8b",
      "placeholder": "​",
      "style": "IPY_MODEL_6016ae447c92412d949550891304b020",
      "value": "Downloading classifier.ckpt: 100%"
     }
    },
    "3562842fec344497b966caba05af1e8b": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3b6b5c831b9843e792bbd3bb7d8438f5": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_d1280f0c62ae43d28e2b6ec1b4d78cc8",
      "placeholder": "​",
      "style": "IPY_MODEL_a4f89c0b8a494a22ab8e47b6437e86d9",
      "value": "Downloading embedding_model.ckpt: 100%"
     }
    },
    "3bf5388c1c7e41ecb03ace96053d721f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "3ff67e8de1fe4173b134a6521eaa8368": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "44ba734e9dbc4d98a54fdc41f515eea6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "4e533fa893714c8c80e7edf16c3cc618": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "501e91feab7c41bdb692135ef5932cb2": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "57271afa0ae943079701da2e26cbc7d2": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_8c1e470a1132492d8355f93acc47e7b9",
      "placeholder": "​",
      "style": "IPY_MODEL_7e3878a6c7cc4a7a88511ec477d29beb",
      "value": " 1.92k/1.92k [00:00&lt;00:00, 147kB/s]"
     }
    },
    "5bb997ac5cc0477fbfc7bccb1f42cda0": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "6016ae447c92412d949550891304b020": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "612096154d564f898ae73624aa52dc1b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "61b2a3094f5e4ce8a48e1e8097400cfb": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f15b28c87f884f94a3f8647a46fe7da9",
      "max": 128619,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_44ba734e9dbc4d98a54fdc41f515eea6",
      "value": 128619
     }
    },
    "6f009abe9edb4a5cad925abe3de24f65": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_501e91feab7c41bdb692135ef5932cb2",
      "max": 1920,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_3bf5388c1c7e41ecb03ace96053d721f",
      "value": 1920
     }
    },
    "706aacf733264412bc3cc0042da84655": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "7816754f55c342379cdf53cfbee99710": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_db81d099ad0a46c5856c34a9a6842799",
      "placeholder": "​",
      "style": "IPY_MODEL_f1951ee8562349d6b805f286986ce4a4",
      "value": " 1.92k/1.92k [00:00&lt;00:00, 126kB/s]"
     }
    },
    "7b0bd89806834970bb751ceefa296644": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_a8653affd36e4c82b793199ec84e3979",
       "IPY_MODEL_af9eaeb7e46946378f525bc369a9f0bd",
       "IPY_MODEL_57271afa0ae943079701da2e26cbc7d2"
      ],
      "layout": "IPY_MODEL_d7ff1eff2ba84b529855cce7c836c398"
     }
    },
    "7e3878a6c7cc4a7a88511ec477d29beb": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "7f954247cd2a49f2af2cb056db826533": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "80ce97975add47d8975b57c7b97447d8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "8c1e470a1132492d8355f93acc47e7b9": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "99f5b2c08a3e471e9a5107a52d0ad135": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_3b6b5c831b9843e792bbd3bb7d8438f5",
       "IPY_MODEL_9e0879e633874ba88427fb87abf40462",
       "IPY_MODEL_28b351c089554f40942eb567211860bf"
      ],
      "layout": "IPY_MODEL_d200b1ea862e4b829c2f7b4138f8aabf"
     }
    },
    "9e0879e633874ba88427fb87abf40462": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3ff67e8de1fe4173b134a6521eaa8368",
      "max": 83316686,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_706aacf733264412bc3cc0042da84655",
      "value": 83316686
     }
    },
    "9fe4c35151b54620a522d56169f95f83": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_105166bd7fe54e4e9abacfeebcb17be7",
      "max": 5534328,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_eb737052336e451cbc10db8b1d43f495",
      "value": 5534328
     }
    },
    "a43cfe2da37340dfa0b55f62592a91d8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "a4f89c0b8a494a22ab8e47b6437e86d9": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "a8653affd36e4c82b793199ec84e3979": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_aaf8d84b6b1049529f00a9b98781e086",
      "placeholder": "​",
      "style": "IPY_MODEL_b7660a1e09e04d8ca25d067cea253e9a",
      "value": "Downloading (…)an_var_norm_emb.ckpt: 100%"
     }
    },
    "aa0199cb9c39449a9d9038a628392c2a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "aaf8d84b6b1049529f00a9b98781e086": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "af9eaeb7e46946378f525bc369a9f0bd": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2ce5976de1aa4d189e09c78348a0f25f",
      "max": 1921,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_80ce97975add47d8975b57c7b97447d8",
      "value": 1921
     }
    },
    "b7660a1e09e04d8ca25d067cea253e9a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "bf0c30b759424ce3a572829e8d0cd5a0": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_f9087c013be74d53a52a2f2bcddd5fcb",
       "IPY_MODEL_61b2a3094f5e4ce8a48e1e8097400cfb",
       "IPY_MODEL_fc0e5b1c431c4499a6f448956d36c1ff"
      ],
      "layout": "IPY_MODEL_cc1a0d84484842aca2040bae71f899e0"
     }
    },
    "cc1a0d84484842aca2040bae71f899e0": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "cdc6881584b2410396144462ad1ec107": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d1280f0c62ae43d28e2b6ec1b4d78cc8": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d200b1ea862e4b829c2f7b4138f8aabf": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d460eb9027954e5c996ea1ec400fb730": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_271e63e09e7743b8a6f382b4e5acbc40",
       "IPY_MODEL_6f009abe9edb4a5cad925abe3de24f65",
       "IPY_MODEL_7816754f55c342379cdf53cfbee99710"
      ],
      "layout": "IPY_MODEL_e441229140564f45a08748091ffdaf9c"
     }
    },
    "d7ff1eff2ba84b529855cce7c836c398": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "db81d099ad0a46c5856c34a9a6842799": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e441229140564f45a08748091ffdaf9c": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e734b6a7602f412bb125820cd00e0a91": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_5bb997ac5cc0477fbfc7bccb1f42cda0",
      "placeholder": "​",
      "style": "IPY_MODEL_253e22fc6dd1453bb11ba5138f36b7e1",
      "value": " 5.53M/5.53M [00:00&lt;00:00, 154MB/s]"
     }
    },
    "eb737052336e451cbc10db8b1d43f495": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "ef66c458a56b4670809a232ae4448326": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_2d2ab546b57141769d3b13f30a10287b",
       "IPY_MODEL_9fe4c35151b54620a522d56169f95f83",
       "IPY_MODEL_e734b6a7602f412bb125820cd00e0a91"
      ],
      "layout": "IPY_MODEL_fe3de03b316243fcafb66a3c07d9ad4c"
     }
    },
    "f15b28c87f884f94a3f8647a46fe7da9": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f1951ee8562349d6b805f286986ce4a4": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "f9087c013be74d53a52a2f2bcddd5fcb": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_cdc6881584b2410396144462ad1ec107",
      "placeholder": "​",
      "style": "IPY_MODEL_06ea8198faba45949ff0aff7484acc2f",
      "value": "Downloading (…)in/label_encoder.txt: 100%"
     }
    },
    "fc0e5b1c431c4499a6f448956d36c1ff": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_7f954247cd2a49f2af2cb056db826533",
      "placeholder": "​",
      "style": "IPY_MODEL_612096154d564f898ae73624aa52dc1b",
      "value": " 129k/129k [00:00&lt;00:00, 1.52MB/s]"
     }
    },
    "fe3de03b316243fcafb66a3c07d9ad4c": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
